iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

課前挑戰

在開始今天的文章前,先讓大家來小試身手一下!

D3 小試身手
試問執行完 myFunction() 後, 請問 a = ?
(a) 1
(b) 2
(c) Error!

(感覺很像大學計概考試會出現的題目...)

Console.log v.s. Logger.log

在 GAS 有兩種打印方式,一個是 javascipt 原生常見、最基本的 console log, 另一個則是 GAS 獨有的 Logger !

在執行時候,執行紀錄兩邊所呈現的完全相同
Log 比較 1
如果要找出一點細微差異的話可以看這篇
不過基本上用法幾乎完全相同,不過有趣的是在執行項目這邊
Log 比較2

  • console.log 的 label 會變成 「偵錯」
  • Logger.log 的 label 則維持 「資訊」

總之,就看你個人哪個函式用的順手就用哪個吧~

另外 GAS 有個有趣的地方是,變數名稱 可以用任何語言,當然也支援中文!
您可以使用多種語言的字符,不過仍需要遵循 JavaScript 的變數命名規則:

  1. 變數名稱必須以字母(大寫或小寫)、下劃線(_)或美元符號($)開頭。
  2. 之後的字符可以是字母、數字、下劃線或美元符號。
  3. 變數名稱對大小寫敏感(例如,myVariable 和 myvariable 是不同的變數)。
var 名字 = "Alice";
var 年齡 = 30;
var 学校 = "北京大學";

var 名前 = "太郎";
var 年齢 = 25;
var 学校 = "東京大学";

var 이름 = "지민";
var 나이 = 22;
var 학교 = "서울대학교";

執行順序

新手在開始之前有一個重點要記得
若欲在 App Script 執行程式碼,請遵循下面程序

  1. 儲存專案
  2. 選取要執行的 Function (很容易測試兩個以上的 function 時會錯亂)
  3. 執行
    執行順序
    這樣我們就可以得到執行結果啦~
    那再回到最一開始的課前挑戰題
    D3 小試身手

如果我去執行 myFunction(), 外面的程式碼究竟是會不會執行?
答案是.... 會!
apps script 執行的邏輯是, 全域的程式部分都會先從上而下被執行到,再去執行指定的 funciton()
所以這題的答案是 (b) 2 !

小試身手答案

那又來一個新的問題啦, 如果有兩個一樣的 function 名稱(甚至散落在不同的 gs 檔案裡), 那究竟是會執行哪一個 function?
day3-hello_1
day3-hello_2

(a) Hello World!
(b) Hello! My friend!
(c) ERROR: 有兩個相同的函數名稱

....
....
..
..

這裡的答案是 (b)

程式碼的順序是由上而下,若有重複函式名稱或變數名稱,就以最後執行到的函數/變數為主(直接覆蓋掉前面的定義)。

學會了基本 Debug 的技能,再來就看看 GAS 中的觸發條件如何實現吧!


上一篇
[Day 2] What is GAS ? 建立一個 App Script 新專案
下一篇
[Day 4] GAS - 設定以事件為準的觸發條件OnEdit/OnOpen/onSelectionChange
系列文
30 天玩轉 GAS: 打造你的個人自動化助手13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言